import request from '@/utils/request'
import { DEFAULT_SIZE } from '@/utils/md5'

// 查询文件上传列表
export function listFile(query) {
  return request({
    url: '/system/file/list',
    method: 'get',
    params: query
  })
}

// 查询文件上传详细
export function getFile(id) {
  return request({
    url: '/system/file/' + id,
    method: 'get'
  })
}

// 新增文件上传
export function addFile(data) {
  return request({
    url: '/system/file',
    method: 'post',
    data: data
  })
}

// 修改文件上传
export function updateFile(data) {
  return request({
    url: '/system/file',
    method: 'put',
    data: data
  })
}

// 删除文件上传
export function delFile(id) {
  return request({
    url: '/system/file/' + id,
    method: 'delete'
  })
}

/**
 * 预上传文件
 * @param fileMd5 唯一标识
 * @param fileName 文件名
 * @param fileSize 文件大小
 * @param chunkSize 分块大小
 * @returns {*}
 */
export function upload({ fileMd5, fileName, fileSize, chunkSize = DEFAULT_SIZE }) {
  return request({
    url: '/system/file/upload',
    method: 'post',
    data: {
      fileMd5,
      fileName,
      fileSize,
      chunkSize
    }
  })
}

/**
 * 获取分块上传链接
 * @param fileMd5 文件唯一标识
 * @param partNumber 分块编号
 */
export function getPreSignUploadUrl(fileMd5, partNumber){
  return request({
    url:`/system/file/${fileMd5}/${partNumber}`,
    method:'get'
  })
}

/**
 * 合并文件
 * @param fileMd5
 * @returns {*}
 */
export function merge(fileMd5){
  return request({
    url:`/system/file/merge/${fileMd5}`,
    method:'post'
  })
}

